//Symbol.hasInstance

class P{}
class S extends P{}
console.log(new S() instanceof P); //true
//只要能通过 __proto__找得到即可
function C(){}
C.prototype.__proto__ = P.prototype
console.log(new C() instanceof P); //true

//而 Symbol.hasInstance 能改变这种评判机制

let o = {
  name: 1
};
// Symbol.iterator 在我迭代的时候 默认就会调用此方法
let obj = {
  [Symbol.hasInstance]() {
    return true;
  }
};
console.log(o instanceof obj); //true

